package com.github.wjw0315.wtool.core.map;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;

import java.util.Map;
import java.util.Set;

@Slf4j
public class Map2Entity{
    /**
     * Map转实体
     * @param updateProperties
     * @param bean
     * @param <T>
     */
    public static <T> void copyPropertiesInclude(Map<String, Object> updateProperties, T bean){
        Set<Map.Entry<String, Object>> revisabilityFiledSet=updateProperties.entrySet();
        for(Map.Entry<String, Object> entry:revisabilityFiledSet){
            Object value=entry.getValue();
            if(value!=null){
                try{
                    BeanUtils.setProperty(bean,entry.getKey(),value);
                }catch(Exception e){
                    log.error("从Map{} 复制 到对象 {} 属性{} 错误key{} 异常",updateProperties.getClass(),bean.getClass(),entry.getKey(),e);
                }
            }
        }
    }
}
